Some endpoints (e.g., mobile phones) may have multiple network interfaces. The network interfaces could potentially be used to perform intelligent cost-efficient routing. However, communicating network policies to an endpoint and determining routing within an endpoint, especially a mobile device endpoint, may be challenging.
In some conventional systems, devices typically choose a pre-defined more efficient interface if it is available. Users have options to control costs by allowing certain services (e.g., updates) to only be performed when connected to a specific interface (e.g., WiFi). Also, users can manually turn on and off connection to an interface if a service is not working through it. Manual control of interfaces can be tedious and error-prone. Further, some conventional systems may not support utilizing information from both network devices and applications to provide route suggestions.
For example, mobile phones typically have WiFi and one or more cellular network interfaces (e.g., 4G or the like). To reduce costs, phones typically use the lower cost interface (often WiFi), if available. However, WiFi network policies (e.g., within an enterprise network) may not allow connectivity to certain services. There may be no methodical way for such endpoint devices to use both available interfaces and allocate traffic in an intelligent or appropriate manner.
Routers can participate in routing protocols that may provide an efficient route to a destination. Theoretically, endpoints with multiple interfaces could participate in routing protocols, but these endpoints typically are not part of the networking infrastructure and may not be given privileges to participate in them. As mentioned above, a user could set static routes on endpoints to dictate what traffic goes through which interface. However, such techniques may work when endpoints are non-mobile and connected to the same network(s).
Some mobile applications (e.g., Super Download) may try to use all available network interfaces to improve download speed. However, such application layer techniques may not be aware of the characteristics of the underlying networks that the interface(s) are connected to, and thus may be attempting an inappropriate or unavailable connection.
Moreover, when using virtual private networks (VPNs) with split tunneling enabled, a VPN server (e.g., corporate or enterprise server) can provide routing prefixes for the corporate network to the device so that traffic to the corporate network can be routed over the (virtual) VPN interface. This technique uses the notion that there is an existing interface with full connectivity and the VPN server provides restricted subset connectivity. There may be no provision for considering application preference in a conventional VPN architecture.
Embodiments were conceived in light of the above-mentioned needs, problems and/or limitations, among other things.